package com.api.dao;

import com.api.entity.Users;
import com.api.entity.UsersDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UsersDao {
    /**
     * 根据用户名和密码登陆
     */
    Users login(Users user);

    /**
     * 重置密码
     */
    int againpwd(String un);

    /**
     * 重置密码
     */
    int resetPwd(@Param("un") String un, @Param("pwd") String pwd);

    /**
     * 重置密码
     */
    int updateMac(@Param("un") String un, @Param("macAddress") String macAddress);

    /**
     * 锁定用户
     */
    int updateLockUsertrue(String un);

    /**
     * 解锁用户
     */
    int updateLockUserfalse(String un);

    /**
     * 删除 用户  (逻辑删除) 把状态改为0,
     */
    int updateState(String uid);

    /**
     * 多条件动态查询所有 分页
     */
    List<Users> findAllBySomeOrder(UsersDto usersDto);

    /**
     * 更新用户信息
     */
    int updateUsersSomeOrderByid(Users user);

    /**
     * 创建用户
     */
    int addUsers(Users user);

    /**
     * 登陆时改变用户的最后登录时间
     */
    int updateUsersTimeById(String id);

    /**
     * 注册时 验证用户名是否重复
     */
    Users findAllByUname(String name);

    /**
     * 注册时 / 修改时   验证 邮箱是否已经存在
     */
    Users findAllByUemal(String emal);

    /**
     * 注册时 / 修改时   验证 手机号是否已经存在
     */
    Users findAllByUnumber(String tel);

	/**
	 * 解绑mac地址
	 */
    int resetMac(String un);

    /**
     * 通过userId和UserName获取
     */
    Users findUserByIdAndName(@Param("userId")String userId,@Param("userName")String userName);
}
